package com.molichuxing.gateway.bff.financial.services;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.gateway.bff.financial.entity.request.create.EsignAccountCreateVo;
import com.molichuxing.gateway.bff.financial.entity.request.create.EsignCompanyCreateVo;
import com.molichuxing.gateway.bff.financial.entity.response.ContractLogVo;
import com.molichuxing.gateway.bff.financial.entity.response.ContractVo;
import com.molichuxing.gateway.bff.financial.entity.response.DeliveryVo;

import java.util.List;
import java.util.Map;

/**
 * 合同相关bff
 *
 * @author zhaopenghui
 * @date 2019年9月11日
 */
public interface ContractBffService {

    /**
     * 合同列表
     *
     * @param map
     * @param pageNum
     * @param pageSize
     * @return
     * @throws Exception
     */
    public Paged<ContractVo> getContractPage(Map<String, Object> map, Integer pageNum, Integer pageSize) throws Exception;

    /**
     * 子合同列表
     *
     * @param mainOrderCode
     * @return
     * @throws Exception
     */
    public List<ContractVo> getSubContractList(Long mainOrderCode) throws Exception;

    /**
     * 合同日志列表
     *
     * @param map
     * @param pageNum
     * @param pageSize
     * @return
     */
    Paged<ContractLogVo> getInvoiceInfoPage(Map<String, Object> map, Integer pageNum, Integer pageSize) throws Exception;

    /**
     * 创建公司印章
     *
     * @param list
     * @return
     * @throws Exception
     */
    public Boolean createCompanyEsign(List<EsignCompanyCreateVo> list) throws Exception;

    /**
     * 创建用户印章
     *
     * @param list
     * @return
     * @throws Exception
     */
    public Boolean createAccountEsign(List<EsignAccountCreateVo> list) throws Exception;

    /**
     * 查询提车单信息
     *
     * @param orderCode
     * @return
     */
    public DeliveryVo getDelivery(Long orderCode);

    /**
     * 企业订单合同编号是否存在
     *
     * @param contractNo 合同编号
     * @return
     */
    boolean getContractEnterpriseIsExist(String contractNo);
}
